<?php

App::uses('AppController', 'Controller');

/**
 * Pacientes Controller
 *
 * @property Paciente $Paciente
 */
class PacientesController extends AppController {

    public $layout = 'hospital';
    public $uses = array('Paciente', 'Departamento', 'Provincia', 'Historiasclinica', 'Seguro', 'PacientesSeguro',
        'Consultasexterna', 'Medida', 'Parametro', 'MedidasPaciente', 'Alerta', 'AlertasPaciente', 'Trauma',
        'MedidasPaciente', 'Concepto', 'User', 'ConceptosPaciente', 'Laboratoriospaciente',
        'Laboratorio', 'Claseslaboratorio', 'CiedesPaciente', 'Examenespaciente', 'Recetaspaciente',
        'Exfisicopaciente', 'Consultaspaciente', 'Subclaseslaboratorio', 'Medicamento', 'Excomplementario',
        'ExcomplementariosPaciente', 'Ciede', 'MedicamentosPaciente', 'Colegio', 'Antecedentesginecologico',
        'Antecedentesanteriore','Antecedentesalergico'
    );
    public $components = array('Fechasconvert');
    public $helpers = array('Fechas', 'Utilidades');

    public function beforeFilter() {
        parent::beforeFilter();
        $this->Auth->allow();
    }

//buscar paciente
    public function ajaxencuentrapaciente() {
        $this->layout = 'ajax';
        if (!empty($this->request->data)) {
            //debug($this->request->data);exit;
            $nombre = $this->request->data['nombre'];
            $paterno = $this->request->data['paterno'];
            $materno = $this->request->data['materno'];
            $carnet = $this->request->data['ci'];
            $fecha = $this->request->data['fecha'];
            $codigo = $this->request->data['codigo'];

            $sql = "SELECT 
                `Paciente`.`id`,`Paciente`.`codigo` ,`Paciente`.`foto` ,`Paciente`.`ap_paterno` , `Paciente`.`ap_materno` , `Paciente`.`nombres` , 
                `Paciente`.`sexo` , `Paciente`.`fecha_nacimiento` , `Paciente`.`localidad` , `Paciente`.`pais`, `Paciente`.`ciudad`,`Paciente`.`direccion` , 
                `Paciente`.`departamento_id`, `Paciente`.`departamento_id_p`,`Paciente`.`provincia_id_p`, `Paciente`.`provincia_id`, `Paciente`.`carnet` ,
                `Paciente`.`num_habitacion`,`Paciente`.`celular`,`Paciente`.`telefono`,`Departamento`.`nombre`,`Departamentop`.`nombre`
                FROM `hospital`.`pacientes` AS `Paciente`
                LEFT JOIN `hospital`.`departamentos` AS `Departamento` ON ( `Paciente`.`departamento_id` = `Departamento`.`id` )
                LEFT JOIN `hospital`.`departamentos` AS `Departamentop` ON ( `Paciente`.`departamento_id_p` = `Departamentop`.`id` )
                WHERE 1 =1";

            if (!empty($nombre)) {
                $sql .=" AND Paciente.nombres LIKE '%$nombre%'";
            }
            if (!empty($paterno)) {
                $sql .=" AND Paciente.ap_paterno LIKE '%$paterno%' ";
            }
            if (!empty($materno)) {
                $sql .=" AND Paciente.ap_materno LIKE '%$materno%' ";
            }
            if (!empty($carnet)) {
                $sql .=" AND Paciente.carnet LIKE '%$carnet%' ";
            }
            if (!empty($fecha)) {
                $fecha_nac = $this->Fechasconvert->doFormatfecha($fecha);
                $sql .=" AND Paciente.fecha_nacimiento LIKE '$fecha_nac' ";
            }
            if (!empty($codigo)) {
                $sql .=" AND Paciente.codigo LIKE '%$codigo%' ";
            }

            $dcm = $this->User->find('all', array(
                'recursive' => 0,
                'conditions' => array('User.group_id' => 2)
            ));

            $triages = $this->Trauma->find('all', array(
                'recursive' => -1,
            ));

            $datos = $this->Paciente->query($sql);
            //debug($datos);exit;
            $cuenta = 0;
            foreach ($datos as $d) {
                $cuenta++;
            }
            if($cuenta == 1){
                $medicos = $this->User->find('all', array(
                'conditions'=>array('User.group_id'=>2)
            ));
            }
            $this->set(compact('medicos','datos', 'cuenta', 'dcm', 'triages'));
        }
    }
    
    
    public function buscarpacienteantecedentes() {
        
    }

    public function detallepaciente($idPaciente = null, $idConsultaExterna = null, $entrada = null) {

        if ($entrada == 1) {
            $idMedico = $this->Session->read('Auth.User.id');
            $data = array('id' => $idConsultaExterna, 'medico_id' => $idMedico, 'estadoatencion' => 'A');
            $this->Consultasexterna->save($data);
        }

        $detallePaciente = $this->Paciente->find('first', array(
            'recursive' => 1,
            'conditions' => array('Paciente.id' => $idPaciente)
        ));

        $ficha = $this->Consultasexterna->find('first', array(
            'conditions' => array('Consultasexterna.id' => $idConsultaExterna)
        ));
        $edad = $this->Fechasconvert->calculaEdad($ficha['Paciente']['fecha_nacimiento']);

        $seguro = $this->Seguro->find('first');
        $medidasPaciente = $this->MedidasPaciente->find('all', array(
            'recursive' => 0,
            'conditions' => array(
                'MedidasPaciente.paciente_id' => $idPaciente,
                'MedidasPaciente.consultasexterna_id' => $idConsultaExterna,
            )
        ));
        $conceptos = $this->ConceptosPaciente->find('all', array(
            'conditions' => array('ConceptosPaciente.consultasexterna_id' => $idConsultaExterna)
        ));
        $alertaPaciente = $this->AlertasPaciente->find('first', array(
            'recursive' => 0,
            'conditions' => array('AlertasPaciente.consultasexterna_id' => $idConsultaExterna),
            'order' => array('AlertasPaciente.id DESC')
        ));

        $laboratoriosDelPaciente = $this->Laboratoriospaciente->find('all', array(
            'recursive' => 0,
            'conditions' => array(
                'Laboratoriospaciente.paciente_id' => $idPaciente,
                'Laboratoriospaciente.consultasexterna_id' => $idConsultaExterna,
            )
        ));

        $clasesDeLaboratorios = $this->Claseslaboratorio->find('all', array(
            'recursive' => -1
        ));

        $cie10Paciente = $this->CiedesPaciente->find('all', array(
            'recursive' => 0,
            'conditions' => array(
                'CiedesPaciente.paciente_id' => $idPaciente,
                'CiedesPaciente.consultasexterna_id' => $idConsultaExterna,
            )
        ));

        $recetasDelPaciente = $this->Recetaspaciente->find('all', array(
            'recursive' => -1,
            'conditions' => array(
                'Recetaspaciente.paciente_id' => $idPaciente,
                'Recetaspaciente.consultasexterna_id' => $idConsultaExterna,
            )
        ));

        $examenDelPaciente = $this->Exfisicopaciente->find('all', array(
            'recursive' => -1,
            'conditions' => array(
                'Exfisicopaciente.paciente_id' => $idPaciente,
                'Exfisicopaciente.consultasexterna_id' => $idConsultaExterna
            )
        ));

        $consultaDelPaciente = $this->Consultaspaciente->find('all', array(
            'recursive' => -1,
            'conditions' => array(
                'Consultaspaciente.paciente_id' => $idPaciente,
                'Consultaspaciente.consultasexterna_id' => $idConsultaExterna
            )
        ));

        $laboratorios = $this->Laboratorio->find('all', array(
            'recursive' => 0
        ));

        $medicamentos = $this->Recetaspaciente->find('all', array(
            'recursive' => -1
        ));

        $medicamentosFarmacia = $this->Medicamento->find('all', array(
            'recursive' => 0,
        ));

        $this->set(compact(
                        'idConsultaExterna', 'detallePaciente', 'medidasPaciente', 'conceptos', 'consultaExterna', 'alertaPaciente', 'laboratoriosDelPaciente', 'laboratorios', 'clasesDeLaboratorios', 'ficha', 'edad', 'seguro', 'cie10Paciente', 'recetasDelPaciente', 'medicamentos', 'examenDelPaciente', 'consultaDelPaciente', 'medicamentosFarmacia'
        ));
    }

    /**
     * index method
     *
     * @return void
     */
    public function index() {
        //$this->Paciente->recursive = 0;
        //$this->set('pacientes', $this->paginate());
        $pacientes = $this->Paciente->find('all', array(
            'order' => array('Paciente.id DESC'),
            'limit' => 200,
            'recursive' => 1
                )
        );
        //debug($pacientes);exit;
        $this->set(compact('pacientes'));
    }

    public function principal() {
        $pacientes = $this->Paciente->find('all', array(
            'order' => array('Paciente.id DESC'),
            'recursive' => 1
                )
        );
        $this->set(compact('pacientes'));
    }

    // public function camara()
    // {
    // }

    /**
     * view method
     *
     * @throws NotFoundException
     * @param string $id
     * @return void
     */
    public function view($id = null) {
        if (!$this->Paciente->exists($id)) {
            throw new NotFoundException(__('No exite este registro'));
        }
        $options = array('conditions' => array('Paciente.' . $this->Paciente->primaryKey => $id));
        $this->set('paciente', $this->Paciente->find('first', $options));
    }

    /**
     * add method
     *
     * @return void
     */
    public function add() {
        //$this->Paciente->fin
        if ($this->request->is('post')) {

            $anteriorPaciente = $this->Paciente->find('first', array(
                'order' => array('Paciente.id DESC')
            ));
            $codigoAntePaciente = $anteriorPaciente['Paciente']['codigo'];
            $nuevoCodigo = $codigoAntePaciente + 1;
            $codigo = $this->Fechasconvert->doCodigo($nuevoCodigo);
            $this->request->data['Paciente']['codigo'] = $codigo;

            $fecha = $this->request->data['Paciente']['fecha_nacimiento'];
            $fecha = $this->Fechasconvert->doCambiaFormato($fecha);
            $this->request->data['Paciente']['fecha_nacimiento'] = $fecha;
            $sinFoto = $this->request->data['Paciente']['sinFoto'];
            ////foto camara          
            ////echo "camara-";
            // $imagen = "";
            // $foto = $this->request->data['Paciente']['foto'];
            // //debug($foto); exit();            
            // $image = base64_decode(str_replace('data:image/png;base64,', '', $foto));
            // //echo "imagen-";
            // $diferenciador = time() . '.png';
            // $fp = fopen('../webroot/img/fotos/' . $diferenciador, 'w');
            // //echo "archivo-";
            // fwrite($fp, $image);
            // //echo "escribo-";  
            // fclose($fp);
            // //echo "cierro-";
            // $imagen = "fotos/" . $diferenciador;
            // $this->request->data['Paciente']['foto'] = $imagen;
            
            //debug($this->request->data);die;
            $this->request->data['Paciente']['user_id'] = $this->Session->read('Auth.User.id');

            //validamos que no registre el mismo nombre 2 veces
            $nombre = $this->request->data['Paciente']['nombres'];
            $apPaterno = $this->request->data['Paciente']['ap_paterno'];
            $apMaterno = $this->request->data['Paciente']['ap_materno'];
            $carnet = $this->request->data['Paciente']['carnet'];

            if (!empty($carnet)) {
                $buscaPaciente = $this->Paciente->find('count', array(
                    'conditions' => array('Paciente.carnet' => $carnet)
                ));
                if ($buscaPaciente > 0) {
                    //echo 'Si hay';
                    $this->Session->setFlash("EL PACIENTE YA ESTA REGISTRADO PUEDES BUSCARLO CON: $nombre $apPaterno $apMaterno CI: $carnet ", 'bueno');
                    $this->redirect(array('action' => 'buscarpaciente'));
                }
            }

            $buscaPaciente2 = $this->Paciente->find('count', array(
                'conditions' => array(
                    'Paciente.nombres' => $nombre,
                    'Paciente.ap_paterno' => $apPaterno,
                    'Paciente.ap_materno' => $apMaterno,
                )
            ));

            if ($buscaPaciente2 > 0) {
                //echo 'Si hay';
                $this->Session->setFlash("EL PACIENTE YA ESTA REGISTRADO PUEDES BUSCARLO CON: $nombre $apPaterno $apMaterno CI: $carnet", 'bueno');
                $this->redirect(array('action' => 'buscarpaciente'));
            }

            //debug($this->request->data);die;
            $this->Paciente->create();
            //debug($this->request->data);exit;
            if ($this->Paciente->save($this->request->data)) {
                $idPaciente = $this->Paciente->getLastInsertID();
                $this->Session->setFlash(__('EL PACIENTE #Item ' . $idPaciente . ' #CODIGO ' . $codigo . ' SE REGISTRO CON EXITO '), 'bueno');
                //$this->redirect(array('action' => 'index'));
                if(!empty($sinFoto)){
                    $this->redirect(array('controller' => 'Consultasexternas', 'action' => 'sacarficha', $idPaciente));    
                }else{
                    $this->redirect(array('action' => 'sacarfoto', $idPaciente));    
                }
                                
            } else {
                $this->Session->setFlash(__('ERROR EN REGISTRO DE PACIENTE'));
            }
        } else {
            $departamentos = $this->Departamento->find('all', array('fields' => array('Departamento.id', 'Departamento.nombre'), 'recursive' => -1));
            //$localidades = $this->Localidade->find('all', array('fields' => array('Localidade.id', 'Localidade.nombre')));
            $provincias = $this->Provincia->find('all', array(
                'fields' => array('Provincia.id', 'Provincia.nombre', 'Departamento.nombre')));
            //debug($provincias);exit;
            $this->set(compact('departamentos', 'provincias'));
        }
    }

    public function ajaxprovincia($departamentoId = null) {
        $this->layout = 'ajaxjquery';
        $provincias = $this->Provincia->find('all', array(
            'conditions' => array('Provincia.departamento_id' => $departamentoId),
            'fields' => array('Provincia.id', 'Provincia.nombre', 'Provincia.departamento_id'),
            'recursive' => -1));
        //debug($provincias);exit;
        $this->set(compact('provincias'));
    }

    public function ajaxprovinciap($departamentoId = null) {
        $this->layout = 'ajaxjquery';
        $provincias = $this->Provincia->find('all', array(
            'conditions' => array('Provincia.departamento_id' => $departamentoId),
            'fields' => array('Provincia.id', 'Provincia.nombre', 'Provincia.departamento_id'),
            'recursive' => -1));
        //debug($provincias);exit;
        $this->set(compact('provincias'));
    }

    /**
     * edit method
     *
     * @throws NotFoundException
     * @param string $id
     * @return void
     */
    public function edit($id = null, $ficha = null, $idconsulta = null) {

        $this->Paciente->id = $id;
        if (!$this->Paciente->exists($id)) {
            throw new NotFoundException(__('Invalid paciente'));
        }
        if ($this->request->is('post') || $this->request->is('put')) {
            $fecha = $this->request->data['Paciente']['fecha_nacimiento'];
            $fecha = $this->Fechasconvert->doCambiaFormato($fecha);
            
            $this->request->data['Paciente']['fecha_nacimiento'] = $fecha;
            //debug($this->request->data['Paciente']);exit;
            if($idconsulta != null){
                $edad = $this->Fechasconvert->calculaEdad($fecha);
                $data = array('id'=>$idconsulta, 'edad'=>$edad);
                $this->Consultasexterna->save($data);
            }
            if ($this->Paciente->save($this->request->data)) {
                //debug($this->request->data['PacientesSeguro']);exit;
                if (!empty($this->request->data['PacientesSeguro'])) {
                    $this->request->data['PacientesSeguro']['gestion'] = date('Y');
                    if (!empty($this->request->data['PacientesSeguro']['id'])) {
                        $data = $this->request->data['PacientesSeguro'];
                        $this->PacientesSeguro->save($data);
                    } else {
                        $this->PacientesSeguro->create();
                        $this->PacientesSeguro->save($this->request->data['PacientesSeguro']);
                    }
                }
                $this->Session->setFlash('Se editaron los datos del paciente', 'bueno');

                if ($ficha == 1):
                    $this->redirect(array('controller' => 'Consultasexternas', 'action' => 'sacarficha', $id));

                elseif ($ficha == 2):
                    $this->redirect(array('controller' => 'Laboratoriospacientes', 'action' => 'verestadopaciente', $idconsulta, 'ficha'));
                elseif ($ficha == 3):
                    $this->redirect(array('controller' => 'Pacientes', 'action' => 'verestadopaciente', $idconsulta, 'signos'));
                else:
                    $this->redirect(array('action' => 'index'));
                endif;
            } else {
                $this->Session->setFlash(__('The paciente could not be saved. Please, try again.'));
            }
        } else {

            $options = array('conditions' => array('Paciente.' . $this->Paciente->primaryKey => $id));


            $this->request->data = $this->Paciente->find('first', $options);
            //debug($this->request->data);exit;
            $fechanac = $this->request->data['Paciente']['fecha_nacimiento'];
            $fecha = $this->Fechasconvert->showDate($fechanac);
            $this->request->data['Paciente']['fecha_nacimiento'] = $fecha;
            //debug($this->request->data);exit;

            $departamentos = $this->Departamento->find('all', array('fields' => array('Departamento.id', 'Departamento.nombre'), 'recursive' => -1));
            //$localidades = $this->Localidade->find('all', array('fields' => array('Localidade.id', 'Localidade.nombre')));
            $provincias = $this->Provincia->find('all', array(
                'fields' => array('Provincia.id', 'Provincia.nombre', 'Departamento.nombre')));
            //debug($provincias);exit;
            //$seguros = $this->Seguro->find('all', array('recursive' => -1));
            $seguros = $this->Seguro->find('all', array('recursive' => -1));
            $colegios = $this->Colegio->find('all', array('recursive' => -1));
            $this->set(compact('departamentos', 'provincias', 'seguros', 'colegios'));
        }
    }

    public function sacarfoto($id = null) {

        $this->Paciente->id = $id;
        if (!$this->Paciente->exists($id)) {
            throw new NotFoundException(__('Invalid paciente'));
        }
        if ($this->request->is('post') || $this->request->is('put')) {
            $imagen = "";
            $foto = $this->request->data['Paciente']['foto'];
            //debug($foto); exit();            
            $image = base64_decode(str_replace('data:image/png;base64,', '', $foto));
            //echo "imagen-";
            $diferenciador = time() . '.png';
            $fp = fopen('../webroot/img/fotos/' . $diferenciador, 'w');
            //echo "archivo-";
            fwrite($fp, $image);
            //echo "escribo-";  
            fclose($fp);
            //echo "cierro-";
            $imagen = "fotos/" . $diferenciador;
            $this->request->data['Paciente']['foto'] = $imagen;

            if ($this->Paciente->save($this->request->data)) {
                $idPaciente = $this->Paciente->id;
                $this->Session->setFlash(__('Datos del paciente se guardo correctamente', 'bueno'));
                //$this->redirect(array('action' => 'index'));
                $this->redirect(array('controller' => 'Consultasexternas', 'action' => 'sacarficha', $idPaciente));
            } else {
                $this->Session->setFlash(__('The paciente could not be saved. Please, try again.'));
            }
        } else {

            $options = array('conditions' => array('Paciente.' . $this->Paciente->primaryKey => $id));
            $this->request->data = $this->Paciente->find('first', $options);
        }
    }

    public function editarfoto($id = null) {

        $this->Paciente->id = $id;
        if (!$this->Paciente->exists($id)) {
            throw new NotFoundException(__('Invalid paciente'));
        }
        if ($this->request->is('post') || $this->request->is('put')) {
            $imagen = "";
            $foto = $this->request->data['Paciente']['foto'];
            //debug($foto); exit();            
            $image = base64_decode(str_replace('data:image/png;base64,', '', $foto));
            //echo "imagen-";
            $diferenciador = time() . '.png';
            $fp = fopen('../webroot/img/fotos/' . $diferenciador, 'w');
            //echo "archivo-";
            fwrite($fp, $image);
            //echo "escribo-";  
            fclose($fp);
            //echo "cierro-";
            $imagen = "fotos/" . $diferenciador;
            $this->request->data['Paciente']['foto'] = $imagen;

            if ($this->Paciente->save($this->request->data)) {

                $this->Session->setFlash(__('Se editaron los datos del paciente', 'bueno'));
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash(__('The paciente could not be saved. Please, try again.'));
            }
        } else {

            $options = array('conditions' => array('Paciente.' . $this->Paciente->primaryKey => $id));
            $this->request->data = $this->Paciente->find('first', $options);
        }
    }

    /**
     * bajasistema method
     *
     * @throws NotFoundException
     * @throws MethodNotAllowedException
     * @param string $id
     * @return void
     */
    public function bajasistema($id = null) {
        //0 = de baja en el sistema
        //1 = de alta en el sistema
        //2 = de baja en la clinica
        //3 = de alta en la clinica
        //4 = en quirofano
        $data = array('id' => $id, 'estado' => 0);
    }

    /**
     * delete method
     *
     * @throws NotFoundException
     * @throws MethodNotAllowedException
     * @param string $id
     * @return void
     */
    public function delete($id = null, $codigo = null) {
        $this->Paciente->id = $id;

        if (!$this->Paciente->exists()) {
            throw new NotFoundException(__('REGISTRO DE PACIENTE INVALIDO'));
        }


        $dato = $this->Historiasclinica->find('count', array(
            'conditions' => array('Historiasclinica.paciente_id' => $id)
        ));
        $consultasexternas = $this->Consultasexterna->find('count', array('conditions' => array('Consultasexterna.paciente_id' => $id)));
        //debug($dato);exit;
        //debug($consultasexternas);exit;
        if ($dato == 0 && $consultasexternas == 0) {
            //$this->request->onlyAllow('post', 'delete');
            if ($this->Paciente->delete($id)) {
                $this->Session->setFlash(__('PACIENTE #item ' . $id . ' #CODIGO ' . $codigo . ' ELIMINADO'));
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash(__('ERROR AL ELIMINAR EL REGISTRO DEL PACIENTE CODIGO ' . $codigo));
                $this->redirect(array('action' => 'index'));
            }
        } else {
            $this->Session->setFlash(__('ERROR NO PUEDE ELIMINAR EL PACIENTE CODIGO ' . $codigo . ' PORQUE CONTIENE HISTORIAS CLINICAS O CONSULTAS EXTERNAS PERO PUEDE DARLO DE BAJA SI DESEA QUE SE ARCHIVE'));
            $this->redirect(array('action' => 'index'));
        }
    }

    public function ajaxencuentrapacienteantecedentes() {
        $this->layout = 'ajax';
        if (!empty($this->request->data)) {
            debug($this->request->data);
            exit;
        }
    }

    public function buscarpaciente() {
        if (!empty($this->request->data)) {
            //debug($this->request->data);exit;
            $nombre = $this->request->data['nombre'];
            $paterno = $this->request->data['paterno'];
            $materno = $this->request->data['materno'];
            $carnet = $this->request->data['ci'];
            $fecha = $this->request->data['fecha'];
            $codigo = $this->request->data['codigo'];

            $sql = "SELECT `Paciente`.`id`,`Paciente`.`codigo` , `Paciente`.`ap_paterno` , `Paciente`.`ap_materno` , `Paciente`.`nombres` , `Paciente`.`sexo` , `Paciente`.`fecha_nacimiento` , `Paciente`.`localidad` , `Paciente`.`direccion` , `Paciente`.`departamento_id` , `Paciente`.`carnet` , `Paciente`.`num_habitacion`
            FROM `hospital`.`pacientes` AS `Paciente`
            LEFT JOIN `hospital`.`departamentos` AS `Departamento` ON ( `Paciente`.`departamento_id` = `Departamento`.`id` )
            WHERE 1 =1";

            if (!empty($nombre)) {
                $sql .=" AND Paciente.nombres LIKE '%$nombre%'";
            }
            if (!empty($paterno)) {
                $sql .=" AND Paciente.ap_paterno LIKE '%$paterno%' ";
            }
            if (!empty($materno)) {
                $sql .=" AND Paciente.ap_materno LIKE '%$materno%' ";
            }
            if (!empty($carnet)) {
                $sql .=" AND Paciente.carnet LIKE '%$carnet%' ";
            }

            if (!empty($codigo)) {
                $sql .=" AND Paciente.codigo LIKE '%$codigo%' ";
            }
            if (!empty($fecha)) {
                $fecha_nac = $this->Fechasconvert->doFormatfecha($fecha);
                $sql .=" AND Paciente.fecha_nacimiento LIKE '$fecha_nac' ";
            }
            $datos = $this->Paciente->query($sql);
            $cuenta = 0;
            if (!empty($datos)) {
                foreach ($datos as $d) {
                    $cuenta++;
                }
            }

            $this->set(compact('datos', 'cuenta'));
        }
    }

    public function ajaxdetallepaciente($id = null) {
        $this->layout = 'ajax';
        $paciente = $this->Paciente->find('first', array(
            'conditions' => array('Paciente.id' => $id),
            'recursive' => 1
        ));
        //debug($paciente);
        $this->set(compact('paciente'));
    }

    public function seguro($id = null, $codigo = null) {
        if (!empty($this->request->data)) {

            $codigo = $this->request->data['Paciente']['codigo'];
            $this->Seguros->create();
            if ($this->Seguros->save($this->request->data['Seguros'])) {
                $this->Session->setFlash('CORRECTO: Se registro el seguro del paciente codigo ' . $codigo);
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash('ERROR: No se registro el seguro del paciente');
                $this->redirect(array('action' => 'index'));
            }
        }
        $gestion = date('Y');
        $paciente = $this->Paciente->find('first', array('conditions' => array('Paciente.id' => $id), 'recursive' => -1));
        $seguros = $this->Seguro->find('all', array(
            'conditions' => array('Seguro.gestion' => $gestion),
            'recursive' => -1
        ));
        $colegios = $this->Colegio->find('all', array('recursive' => -1));

        $this->set(compact('seguros', 'paciente', 'codigo', 'id', 'colegios'));
    }

    protected function _guardanuevalerta($tipoalerta = null, $idConsulta = null, $pacienteId = null) {

        $alertaid = $this->Alerta->find('first', array(
            'conditions' => array(
                'Alerta.color LIKE' => $tipoalerta),
            'recursive' => -1
        ));

        $idAlerta = $alertaid['Alerta']['id'];
        if (!empty($alertaid)) {
            $this->request->data['AlertasPaciente']['paciente_id'] = $pacienteId;
            $this->request->data['AlertasPaciente']['alerta_id'] = $idAlerta;
            $this->request->data['AlertasPaciente']['consultasexterna_id'] = $idConsulta;
            $this->request->data['AlertasPaciente']['fecha'] = date('Y-m-d');
            $this->request->data['AlertasPaciente']['hora'] = date('H:mm:ss');
            $this->AlertasPaciente->save($this->request->data['AlertasPaciente']);
        }
    }

    protected function _guardalerta($tipoalerta = null, $idConsulta = null, $pacienteId = null) {

        $alertaid = $this->Alerta->find('first', array(
            'conditions' => array(
                'Alerta.color LIKE' => $tipoalerta),
            'recursive' => -1
        ));

        $idAlerta = $alertaid['Alerta']['id'];
        $alertaspaciente = $this->AlertasPaciente->find('first', array(
            'conditions' => array(
                'AlertasPaciente.consultasexterna_id' => $idConsulta
            ),
            'order' => array('AlertasPaciente.id DESC')
        ));
        $alertaAnterior = $alertaspaciente['Alerta']['color'];
        if (empty($alertaspaciente)) {

            //debug($alertaid);exit;
            if (!empty($alertaid)) {
                $this->request->data['AlertasPaciente']['paciente_id'] = $pacienteId;
                $this->request->data['AlertasPaciente']['alerta_id'] = $idAlerta;
                $this->request->data['AlertasPaciente']['consultasexterna_id'] = $idConsulta;
                $this->request->data['AlertasPaciente']['fecha'] = date('Y-m-d');
                $this->request->data['AlertasPaciente']['hora'] = date('H:mm:ss');
                $this->AlertasPaciente->save($this->request->data['AlertasPaciente']);
            }
        }
    }

    public function signosvitales($idConsulta = null) {

        if (!empty($this->request->data)) {
            //debug($this->request->data);exit;
            $data = $this->request->data['Consultasexterna'];

            $this->Consultasexterna->save($data);

            $tipo = $data['triage'];
            $alerta = 0;
            $i = 0;
            $consultanro = $data['id'];

            $nropaciente = $this->request->data['MedidasPaciente'][0]['paciente_id'];
            if (empty($this->request->data['MedidasPaciente'])) {
                $this->Session->setFlash('Debe registrar al menos un parametro en signos vitales para continuar', 'error');
            } else {
                foreach ($this->request->data['MedidasPaciente'] as $dato) {

                    if ($dato['dato'] != null && $dato['dato'] != 0) {
                        $this->MedidasPaciente->create();
                        $this->MedidasPaciente->save($dato);

                        $edad = $dato['edad'];
                        $medida = $dato['dato'];
                        $idMedida = $dato['medida_id'];
                        if ($edad != null && $edad > 0 && $edad < 2000) {

                            $datoreferencia = $this->Parametro->find('count', array(
                                'conditions' => array(
                                    'Parametro.medida_id' => $idMedida,
                                    'Parametro.edadmin <=' => $edad,
                                    'Parametro.edadmax >=' => $edad,
                                    'Parametro.motivo like ' => $tipo,
                                    'OR' => array(
                                        'Parametro.rango_inicial >' => $medida,
                                        'Parametro.rango_final <' => $medida)
                                )
                            ));
                        } else {

                            $datoreferencia = $this->Parametro->find('count', array(
                                'conditions' => array(
                                    'Parametro.medida_id' => $idMedida,
                                    'Parametro.motivo like ' => $tipo,
                                    'OR' => array(
                                        'Parametro.rango_inicial >' => $medida,
                                        'Parametro.rango_final <' => $medida)
                                )
                            ));
                        }
                        if ($datoreferencia >= 1 && $idMedida != 8) {

                            $alerta++;
                        }
                    }


                    $i++;
                }//fin foreach

                if ($alerta >= 1) {
                    $tipoalerta = 'ROJO';
                } else {
                    $tipoalerta = 'BLANCO';
                }

                if (!empty($this->request->data['ConceptosPaciente'])) {
                    $alertaroja = 0;
                    $alertamarilla = 0;
                    $alertaverde = 0;
                    $alertablanca = 0;

                    $conceptos = $this->request->data['ConceptosPaciente'];

                    foreach ($conceptos as $c) {
                        if (!empty($c['concepto_id'])) {
                            $data = '';
                            $this->ConceptosPaciente->create();
                            $data = $c;
                            $this->ConceptosPaciente->save($data);
                            if (strtoupper($c['alerta_id']) == 'ROJO') {
                                $alertaroja++;
                            } elseif (strtoupper($c['alerta_id']) == 'AMARILLO') {
                                $alertamarilla++;
                            } elseif (strtoupper($c['alerta_id']) == 'VERDE') {
                                $alertaverde++;
                            } else {
                                $alertablanca++;
                            }
                        }
                    }//fin del recorrido de conceptos


                    if ($alertaroja == 0 && $tipoalerta != 'ROJO') {
                        if ($alertamarilla == 0) {
                            if ($alertaverde == 0) {
                                $tipoalerta = 'BLANCA';
                            } elseif ($alerta == 0) {
                                $tipoalerta = 'VERDE';
                            }
                        } elseif ($alerta == 0) {
                            $tipoalerta = 'AMARILLO';
                        }
                    } else {
                        $tipoalerta = 'ROJO';
                    }
                }

                $this->_guardalerta($tipoalerta, $consultanro, $nropaciente);
                if ($motivoconsulta == 1 && $tipoalerta == 'ROJO') {
                    $this->Session->setFlash('ALERTA: Este paciente se encuentra en alerta ' . $tipoalerta . ' y debe ser estabilizado se recomienda que sea examinado por emergencias por el medico de turno', 'bueno');
                } else {
                    $this->Session->setFlash('Los signos vitales y sintomas fueron registrados <br/>. ALERTA: Este paciente se encuentra en alerta ' . $tipoalerta, 'bueno');
                }
                $dato = 'txt_motivo';
                $this->redirect(array('action' => 'verestadopaciente', $consultanro, $dato));
            }//fin del registro de los datos del paciente
        }
        $ficha = $this->Consultasexterna->find('first', array(
            'conditions' => array('Consultasexterna.id' => $idConsulta)
        ));
        $fecha = $ficha['Paciente']['fecha_nacimiento'];

        $edad = $this->Fechasconvert->calculaEdad($fecha);
        
        
        $signos = $this->Medida->find('all', array(
            'recursive' => 1,
            'order' => array('Medida.orden ASC')));
        $idTrauma = $ficha['Consultasexterna']['trauma_id'];
        $sintomas = $this->Concepto->find('all', array(
            'conditions' => array('Concepto.trauma_id' => $idTrauma)
        ));
        $this->set(compact('signos', 'ficha', 'edad', 'sintomas'));
    }

    public function nuevossignosvitales($idConsulta = null) {
        $this->layout = 'ajax';
        if (!empty($this->request->data)) {
            //debug($this->request->data);exit;
            $data = $this->request->data['Consultasexterna'];

            //$this->Consultasexterna->save($data);

            $tipo = $data['triage'];
            $alerta = 0;
            $i = 0;
            $consultanro = $data['id'];

            $nropaciente = $this->request->data['MedidasPaciente'][0]['paciente_id'];
            if (!empty($this->request->data['MedidasPaciente'])) {
                foreach ($this->request->data['MedidasPaciente'] as $dato) {
                    if ($dato['dato'] != null && $dato['dato'] != 0) {
                        $this->MedidasPaciente->create();
                        $this->MedidasPaciente->save($dato);

                        $edad = $dato['edad'];
                        $medida = $dato['dato'];
                        $idMedida = $dato['medida_id'];
                        if ($edad != null && $edad > 0 && $edad < 2000) {

                            $datoreferencia = $this->Parametro->find('count', array(
                                'conditions' => array(
                                    'Parametro.medida_id' => $idMedida,
                                    'Parametro.edadmin <=' => $edad,
                                    'Parametro.edadmax >=' => $edad,
                                    'Parametro.motivo like ' => $tipo,
                                    'OR' => array(
                                        'Parametro.rango_inicial >' => $medida,
                                        'Parametro.rango_final <' => $medida)
                                )
                            ));
                        } else {

                            $datoreferencia = $this->Parametro->find('count', array(
                                'conditions' => array(
                                    'Parametro.medida_id' => $idMedida,
                                    'Parametro.motivo like ' => $tipo,
                                    'OR' => array(
                                        'Parametro.rango_inicial >' => $medida,
                                        'Parametro.rango_final <' => $medida)
                                )
                            ));
                        }
                        if ($datoreferencia >= 1 && $idMedida != 8) {

                            $alerta++;
                        }
                    }


                    $i++;
                }//fin foreach

                if ($alerta >= 1) {
                    $tipoalerta = 'ROJO';
                } else {
                    $tipoalerta = 'BLANCO';
                }

                if (!empty($this->request->data['ConceptosPaciente'])) {

                    $idConsulta = $this->request->data['ConceptosPaciente'][0]['consultasexterna_id'];
                    $sintomaspaciente = $this->ConceptosPaciente->find('all', array(
                        'conditions' => array(
                            'ConceptosPaciente.consultasexterna_id' => $idConsulta
                        ),
                        'recursive' => -1));

                    foreach ($sintomaspaciente as $s) {
                        $data = array('id' => $s['ConceptosPaciente']['id'], 'estado' => '0');
                        $this->ConceptosPaciente->saveAll($data);
                    }
                    $alertaroja = 0;
                    $alertamarilla = 0;
                    $alertaverde = 0;
                    $alertablanca = 0;

                    $conceptos = $this->request->data['ConceptosPaciente'];

                    foreach ($conceptos as $c) {
                        if (!empty($c['concepto_id'])) {
                            $data = '';
                            $this->ConceptosPaciente->create();
                            $data = $c;
                            $this->ConceptosPaciente->save($data);
                            if (strtoupper($c['alerta_id']) == 'ROJO') {
                                $alertaroja++;
                            } elseif (strtoupper($c['alerta_id']) == 'AMARILLO') {
                                $alertamarilla++;
                            } elseif (strtoupper($c['alerta_id']) == 'VERDE') {
                                $alertaverde++;
                            } else {
                                $alertablanca++;
                            }
                        }
                    }//fin del recorrido de conceptos

                    if ($alertaroja == 0 && $tipoalerta != 'ROJO') {
                        if ($alertamarilla == 0) {
                            if ($alertaverde == 0) {
                                $tipoalerta = 'BLANCA';
                            } elseif ($alerta == 0) {
                                $tipoalerta = 'VERDE';
                            }
                        } elseif ($alerta == 0) {
                            $tipoalerta = 'AMARILLO';
                        }
                    } else {
                        $tipoalerta = 'ROJO';
                    }
                }

                $this->_guardalerta($tipoalerta, $consultanro, $nropaciente);
                if ($motivoconsulta == 1 && $tipoalerta == 'ROJO') {
                    $this->Session->setFlash('ALERTA: Este paciente se encuentra en alerta ' . $tipoalerta . ' y debe ser estabilizado se recomienda que sea examinado por emergencias por el medico de turno');
                } else {
                    $this->Session->setFlash('Los signos vitales y sintomas fueron registrados <br/>. ALERTA: Este paciente se encuentra en alerta ' . $tipoalerta);
                }

                $this->redirect(array('action' => 'verestadopaciente', $consultanro, 'txt_motivo'));
            }//fin del registro de los datos del paciente
        }
        $ficha = $this->Consultasexterna->find('first', array(
            'conditions' => array('Consultasexterna.id' => $idConsulta)
        ));
        $fecha = $ficha['Paciente']['fecha_nacimiento'];

        $edad = $this->Fechasconvert->calculaEdad($fecha);

        $signos = $this->Medida->find('all', array(
            'recursive' => 1,
            'order' => array('Medida.orden ASC')));


        $sintomaspaciente = $this->ConceptosPaciente->find('all', array(
            'conditions' => array('ConceptosPaciente.consultasexterna_id' => $idConsulta),
            'recursive' => -1));
        $idTrauma = $ficha['Consultasexterna']['trauma_id'];
        $traumas = $this->Trauma->find('all', array('recursive' => -1));
        $sintomas = $this->Concepto->find('all', array(
            'conditions' => array('Concepto.trauma_id' => $idTrauma)
        ));
        $this->set(compact('idConsulta', 'signos', 'traumas', 'idTrauma', 'ficha', 'edad', 'sintomas', 'sintomaspaciente'));
    }

    public function ajaxalergias($idpaciente = null) {
        $this->layout = 'ajax';
        $historialalergias = $this->CiedesPaciente->find('all', array(
            'conditions' => array(
                'CiedesPaciente.paciente_id' => $idpaciente,
                'CiedesPaciente.codigocie like' => 'Z88%',
                'CiedesPaciente.estado' => TRUE
            ),
            'order' => array('CiedesPaciente.id DESC'),
            'recursive' => -1
        ));
        $this->set(compact('historialalergias'));
    }

    public function verestadopaciente($consultanro = null, $idtabindex = null) {

        $ficha = $this->Consultasexterna->find('first', array(
            'conditions' => array('Consultasexterna.id' => $consultanro)
        ));
        $numeroFicha = $ficha['Consultasexterna']['number'];
        $nombrePaciente = $ficha['Paciente']['nombres'] . ' ' . $ficha['Paciente']['ap_paterno'] . ' ' . $ficha['Paciente']['ap_materno'];
        //debug($ficha);exit;
        if ($ficha['Consultasexterna']['estadoatencion'] == 'F') {
            $this->Session->setFlash('La ficha fue finalizada', 'error');
            $this->redirect(array('controller' => 'Pacientes', 'action' => 'verestadopacienteimprime', $consultanro));
        }

        if ($ficha['Consultasexterna']['medico_id'] == null && $ficha['Consultasexterna']['estadoatencion'] == 'N') {

            $tipoUsuario = $this->Session->read('Auth.User.group_id');
            if ($tipoUsuario == 2) {
                $nombreMedico = $this->Session->read('Auth.User.nombre') . ' ' . $this->Session->read('Auth.User.apellido_paterno') . ' ' . $this->Session->read('Auth.User.apellido_materno');
                $data = array('id' => $consultanro, 'medico_id' => $this->Session->read('Auth.User.id'), 'estadoatencion' => 'A');
                CakeLog::warning("Atendio Ficha: $numeroFicha \t\t Paciente: $nombrePaciente \t\t Doctor: $nombreMedico", 'cambio');
                $this->Consultasexterna->save($data);
            }
            $idtabindex = "signos";
        }
        if ($idtabindex == null) {

            $idtabindex = "signos";
        }

        $listademedidas = $this->Medida->find('all', array('fields' => array('Medida.id', 'Medida.codigo'), 'recursive' => -1));
        //debug($listademedidas);
        $conceptos = $this->ConceptosPaciente->find('all', array('conditions' => array('ConceptosPaciente.consultasexterna_id' => $consultanro)));
        $edad = $ficha['Consultasexterna']['edad'];

        $examenesexternos = $this->Excomplementario->find('all', array('recursive' => -1));
        $laboratoriossolicitados = $this->Examenespaciente->find('all', array(
            'conditions' => array(
                'Examenespaciente.consultasexterna_id' => $consultanro),
            'fields' => array(
                'Subclaseslaboratorio.nombre', 'User.apellido_materno', 'User.apellido_paterno', 'User.nombre', 
                'Examenespaciente.id',
                'Examenespaciente.consultasexterna_id'
                ,'Examenespaciente.created')
        ));

        $cie10Paciente = $this->CiedesPaciente->find('all', array(
            'recursive' => 0,
            'conditions' => array(
                'CiedesPaciente.paciente_id' => $ficha['Paciente']['id'],
                'CiedesPaciente.consultasexterna_id' => $consultanro,
                'CiedesPaciente.estado' => 1
            )
        ));
        $receta = $this->MedicamentosPaciente->find('all', array(
            'conditions' => array(
                'MedicamentosPaciente.consultasexterna_id' => $consultanro),
            'fields' => array(
                'User.nombre', 'User.apellido_paterno', 'MedicamentosPaciente.created', 'MedicamentosPaciente.medicamento',
                'Medicamento.nombre', 'Medicamento.porporcion', 'Medicamento.presentacionesmedicamento_id', 'Medicamento.medidasmedicamento_id',
                'MedicamentosPaciente.cantidad', 'MedicamentosPaciente.seguro', 'MedicamentosPaciente.dosis', 'MedicamentosPaciente.observaciones'),
            'recursive' => 0));
        //debug($historialalergias);exit;
        $alergias = $this->Antecedentesalergico->find(
                'all', array(
                    'conditions'=>array('Antecedentesalergico.paciente_id'=>$ficha['Paciente']['id'])));
        
        $this->set(compact('alergias', 'idtabindex', 'consultanro', 'ficha', 'edad', 'medidas', 'conceptos', 'tipoalerta', 'color', 'listademedidas', 'examenesexternos', 'laboratoriossolicitados', 'examenespaciente', 'cie10Paciente', 'receta'));
    }
    

    public function motivoconsulta($idConsulta = null) {
        if (!empty($this->request->data)) {
            debug($this->request->data);
            exit;
        }
        $ficha = $this->Consultasexterna->find('first', array(
            'conditions' => array('Consultasexterna.id' => $idConsulta)
        ));
        $triages = $this->Trauma->find('all', array(
            'conditions' => array('Trauma.trauma like ' => $ficha['Consultasexterna']['triage']),
            'recursive' => -1));
        //debug($triages);exit;
        $this->set(compact('ficha', 'triages'));
    }

    public function ajaxsintomas($idTrauma = null) {
        //debug($idTrauma);exit;
        $this->layout = 'ajaxjquery';

        $sintomas = $this->Concepto->find('all', array(
            'conditions' => array('Concepto.trauma_id' => $idTrauma)
        ));
        //debug($sintomas);exit;
        $this->set(compact('sintomas'));
    }

    public function listadolaboratorios() {
        
    }

    public function ajaxtraumas($id = null, $idconsulta = null, $idpaciente = null) {
        $this->layout = 'ajax';
        $sintomas = $this->Concepto->find('all', array(
            'conditions' => array('Concepto.trauma_id' => $id)
        ));
        //debug($sintomas);exit;
        $this->set(compact('sintomas', 'idconsulta', 'idpaciente'));
    }

    public function nuevosignosvitales($idConsulta = null) {
        $this->layout = 'ajax';

        if (!empty($this->request->data)) {
            //debug($this->request->data);
            $data = $this->request->data['Consultasexterna'];
            //debug($data);
            $trauma = $this->Trauma->find('first', array('conditions' => array(
                    'Trauma.id' => $this->request->data['Consultasexterna']['trauma_id']
            )));
            $tipo = $trauma['Trauma']['trauma'];

            $this->request->data['Consultasexterna']['triage'] = $trauma;
            //debug( $this->request->data['Consultasexterna']);exit;
            $this->Consultasexterna->save($data);

            $alerta = 0;
            //debug($tipo);
            $i = 0;
            foreach ($this->request->data['MedidasPaciente'] as $dato) {
                if ($dato['dato'] != null && $dato['dato'] != 0) {
                    $this->MedidasPaciente->create();
                    $this->MedidasPaciente->save($dato);
                    //debug($this->MedidasPaciente->getLastInsertID());exit;
                    $edad = $dato['edad'];
                    $medida = $dato['dato'];
                    $idMedida = $dato['medida_id'];
                    $a = 0;
                    $b = 0;
                    if ($edad != null && $edad > 0 && $edad < 2000) {
                        $a++;
                        // debug($a);exit;
                        $datoreferencia = $this->Parametro->find('count', array(
                            'conditions' => array(
                                'Parametro.medida_id' => $idMedida,
                                'Parametro.edadmin <=' => $edad,
                                'Parametro.edadmax >=' => $edad,
                                'Parametro.motivo like' => $tipo,
                                'OR' => array(
                                    'Parametro.rango_inicial >' => $medida,
                                    'Parametro.rango_final <' => $medida)
                            )
                        ));
                    } else {
                        // $b++;
                        $datoreferencia = $this->Parametro->find('count', array(
                            'conditions' => array(
                                'Parametro.medida_id' => $idMedida,
                                'Parametro.motivo like ' => $tipo,
                                'OR' => array(
                                    'Parametro.rango_inicial >' => $medida,
                                    'Parametro.rango_final <' => $medida)
                            )
                        ));
                    }

                    if ($datoreferencia == 1)
                        $alerta++;
                }//fin if consulta si no es vacio el campo
                $i++;
            }//fin foreach

            if ($alerta >= 1) {
                $tipoalerta = 'ROJO';
                //$alertaCreada = $this->AlertasPaciente->getLastInsertID();exit;
            } else {
                $tipoalerta = 'BLANCO';
            }

            if (!empty($this->request->data['ConceptosPaciente'])) {

                $idConsulta = $this->request->data['ConceptosPaciente'][0]['consultasexterna_id'];

                $sintomaspaciente = $this->ConceptosPaciente->find('all', array(
                    'conditions' => array(
                        'ConceptosPaciente.consultasexterna_id' => $idConsulta
                    ),
                    'recursive' => -1));
                //debug($sintomaspaciente);exit;
                foreach ($sintomaspaciente as $s) {
                    $data = array('id' => $s['ConceptosPaciente']['id'], 'estado' => '0');
                    $this->ConceptosPaciente->save($data);
                }
                $alertaroja = 0;
                $alertamarilla = 0;
                $alertaverde = 0;
                $alertablanca = 0;

                $conceptos = $this->request->data['ConceptosPaciente'];

                foreach ($conceptos as $c) {
                    if (!empty($c['concepto_id'])) {
                        $data = '';
                        $this->ConceptosPaciente->create();
                        $data = $c;
                        //debug($data);exit;
                        $this->ConceptosPaciente->save($data);

                        if (strtoupper($c['alerta_id']) == 'ROJO') {
                            $alertaroja++;
                        } elseif (strtoupper($c['alerta_id']) == 'AMARILLO') {
                            $alertamarilla++;
                        } elseif (strtoupper($c['alerta_id']) == 'VERDE') {
                            $alertaverde++;
                        } else {
                            $alertablanca++;
                        }
                    }
                }


                if ($alertaroja == 0 && $alerta == 0) {
                    if ($alertamarilla == 0) {
                        if ($alertaverde == 0) {
                            $tipoalerta = 'BLANCA';
                        } elseif ($alerta == 0) {
                            $tipoalerta = 'VERDE';
                        }
                    } elseif ($alerta == 0) {
                        $tipoalerta = 'AMARILLO';
                    }
                } else {
                    $tipoalerta = 'ROJO';
                }
            }
            $nropaciente = $this->request->data['MedidasPaciente'][0]['paciente_id'];
            $consultanro = $this->request->data['MedidasPaciente'][0]['consultasexterna_id'];

            $this->_guardanuevalerta($tipoalerta, $consultanro, $nropaciente);

            $this->Session->setFlash('ALERTA: Este paciente se encuentra en alerta ' . $tipoalerta);
            $dato = 'txt_motivo';
            $this->redirect(array('action' => 'verestadopaciente', $consultanro, $dato));
        }
        $ficha = $this->Consultasexterna->find('first', array(
            'conditions' => array('Consultasexterna.id' => $idConsulta)
        ));
        //debug($ficha);exit;
        $fecha = $ficha['Paciente']['fecha_nacimiento'];

        $edad = $this->Fechasconvert->calculaEdad($fecha);

        $signos = $this->Medida->find('all', array(
            'recursive' => 1,
            'order' => array('Medida.orden ASC')));
        //debug($signos);exit;
        $idTrauma = $ficha['Consultasexterna']['trauma_id'];
        $sintomas = $this->Concepto->find('all', array(
            'conditions' => array('Concepto.trauma_id' => $idTrauma),
            'order' => array('Concepto.alerta_id ASC')
        ));

        $traumas = $this->Trauma->find('all', array('recursive' => -1));

        $this->set(compact('ficha', 'signos', 'edad', 'sintomas', 'idTrauma', 'traumas'));
    }

    public function ajaxregistralab() {

        $this->layout = 'ajax';
        //debug($this->request->data);exit;
        $datosLaboratorios = $this->request->data['laboratorios'];
        $datosSubLaboratorios = $this->request->data['sublaboratorios'];
        //debug($datosSublaboratorios);exit();
        $idPaciente = $this->request->data['Pacientes']['paciente_id'];
        $idConsulta = $this->request->data['Pacientes']['consultasexterna_id'];

        $data = array('id' => $idConsulta, 'estadoatencion' => 'L');
        $this->Consultasexterna->save($data);

        foreach ($datosLaboratorios as $l) {
            $this->request->data = '';
            $this->request->data['Laboratoriospaciente']['subclaseslaboratorio_id'] = $l['valor'];
            $this->request->data['Laboratoriospaciente']['paciente_id'] = $idPaciente;
            $this->request->data['Laboratoriospaciente']['consultasexterna_id'] = $idConsulta;
            $this->Laboratoriospaciente->create();
            $this->Laboratoriospaciente->save($this->request->data);
        }

        foreach ($datosSubLaboratorios as $dsl) {
            //debug($arreglo);
            $sublab = $dsl['valor'];
            //debug($sublab);
            $arreglo = explode(" ", $sublab);
            //debug($arreglo);
            for ($i = 0; $i <= 1; $i++) {
                $this->request->data = '';
                $this->request->data['Laboratoriospaciente']['subclaseslaboratorio_id'] = $arreglo[$i];
                $i++;
                $this->request->data['Laboratoriospaciente']['laboratorio_id'] = $arreglo[$i];
                $this->request->data['Laboratoriospaciente']['paciente_id'] = $idPaciente;
                $this->request->data['Laboratoriospaciente']['consultasexterna_id'] = $idConsulta;
                //debug($this->request->data);
                $this->Laboratoriospaciente->create();
                $this->Laboratoriospaciente->save($this->request->data);    
            }
        }
        $datosLabPaciente = $this->Laboratoriospaciente->find('all', array(
            'recursive' => 0,
            'conditions' => array(
                'Laboratoriospaciente.paciente_id' => $idPaciente,
                'Laboratoriospaciente.consultasexterna_id' => $idConsulta
            )
        ));
        $this->set(compact('datosLabPaciente'));
        //exit;
    }

    public function registrocie($idpaciente = null, $idconsulta = null) {
        $this->layout = 'ajax';
        if (!empty($this->request->data)) {
            //debug($this->request->data);
            $frase = $this->request->data['dato'];
            $idPaciente = $this->request->data['paciente_id'];
            $idConsulta = $this->request->data['consultasexterna_id'];
            $observaciones = $this->request->data['observaciones'];
            //debug($frase);
            $cadena = substr($frase, 0, -1);
            //debug($cadena);exit;    
            $cidies = $this->Ciede->find('first', array(
                'recursive' => -1,
                'conditions' => array('Ciede.descod4 like' => '%' . $cadena . '%')
            ));
            //debug($cidies);
            $idCiede = $cidies['Ciede']['id'];
            $this->request->data = '';
            $this->request->data['CiedesPaciente']['user_id'] = $this->Session->read("Auth.User.id");
            $this->request->data['CiedesPaciente']['paciente_id'] = $idPaciente;
            $this->request->data['CiedesPaciente']['consultasexterna_id'] = $idConsulta;
            $this->request->data['CiedesPaciente']['ciede_id'] = $idCiede;
            $this->request->data['CiedesPaciente']['observaciones'] = $observaciones;
            //$this->request->data['Ciedespaciente']['paciente_id']=$idPaciente;
            //$cidies['Ciede']['id'];
            //debug($this->request->data);exit;
            $this->CiedesPaciente->create();
            
            $this->CiedesPaciente->save($this->request->data);

            $this->redirect(array('controller' => 'Pacientes', 'action' => 'verestadopaciente', $idConsulta, 'cie'));

        } else {
            $this->set(compact('idpaciente', 'idconsulta'));
        }
    }

    public function quitarcie($idconsulta = NULL, $id = NULL, $codigo = null, $desc = null) {
        if ($this->CiedesPaciente->delete($id)) {
            $nombrecie = $codigo . '-' . $desc;
            $this->Session->setFlash('Se descarto CIE ' . $nombrecie . ' del historial actual del paciente', 'bueno');
            $this->redirect(array('action' => 'verestadopaciente', $idconsulta, 'cie'));
        }
    }

    public function antecedentespacientes($consultanro = null, $tipoalerta = null) {
        $ficha = $this->Consultasexterna->find('first', array(
            'conditions' => array(
                'Consultasexterna.id' => $consultanro)));
        $historial = $this->Consultasexterna->find('all', array(
            'conditions' => array(
                'Consultasexterna.paciente_id' => $ficha['Paciente']['id'],
                'Consultasexterna.id !=' => $consultanro
            ),
            'order' => array('Consultasexterna.id DESC')
        ));
        $historialergias = $this->CiedesPaciente->find('all', array(
            'conditions' => array(
                'CiedesPaciente.paciente_id' => $ficha['Paciente']['id'],
                'Ciede.cod3' => 'Z88'), 'order' => array('Consultasexterna.id DESC')
        ));
        $this->set(Compact('ficha', 'historial', 'historialergias'));
    }

    public function antecedentes($consultanro = null, $tipoalerta = null) {
        $ficha = $this->Consultasexterna->find('first', array(
            'conditions' => array(
                'Consultasexterna.id' => $consultanro)));

        $historial = $this->Consultasexterna->find('all', array(
            'order' => array('Consultasexterna.id DESC')
        ));
        //debug($historial);exit;

        $historialergias = $this->CiedesPaciente->find('all', array(
            'order' => array('Consultasexterna.id DESC')
        ));

        $this->set(Compact('ficha', 'historial', 'historialergias'));
    }

    public function ajaxcambiamotivoconsulta() {
        if (!empty($this->request->data)) {
            $data = $this->request->data;
            debug($this->request->data);
            exit;
            if (!($this->Consultasexterna->save($data))) {
                $this->Session->setFlash('Error en el registro vuelva a intentarlo');
            }
        }
    }

    public function verestadopacienteimprime($consultanro = null) {
        $ficha = $this->Consultasexterna->find('first', array(
            'conditions' => array('Consultasexterna.id' => $consultanro)
        ));
        

        if ($idtabindex == null) {

            $idtabindex = "signos";
        }
        $listademedidas = $this->Medida->find('all', array('fields' => array('Medida.id', 'Medida.codigo'), 'recursive' => -1));
        //debug($listademedidas);
        $conceptos = $this->ConceptosPaciente->find('all', array('conditions' => array('ConceptosPaciente.consultasexterna_id' => $consultanro)));
        $edad = $ficha['Consultasexterna']['edad'];

        $examenesexternos = $this->Excomplementario->find('all', array('recursive' => -1));
        $laboratoriossolicitados = $this->Examenespaciente->find('all', array(
            'conditions' => array(
                'Examenespaciente.consultasexterna_id' => $consultanro),
            'fields' => array('Subclaseslaboratorio.nombre', 'User.apellido_materno', 'User.apellido_paterno', 'User.nombre', 'Examenespaciente.created')
        ));

        $cie10Paciente = $this->CiedesPaciente->find('all', array(
            'recursive' => 0,
            'conditions' => array(
                'CiedesPaciente.paciente_id' => $ficha['Paciente']['id'],
                'CiedesPaciente.consultasexterna_id' => $consultanro,
                'CiedesPaciente.estado' => 1
            )
        ));
        $receta = $this->MedicamentosPaciente->find('all', array(
            'conditions' => array('MedicamentosPaciente.consultasexterna_id' => $consultanro),
            'fields' => array(
                'User.nombre', 'User.apellido_paterno', 
                'MedicamentosPaciente.created', 'MedicamentosPaciente.medicamento','MedicamentosPaciente.cantidad',
                'MedicamentosPaciente.seguro', 'MedicamentosPaciente.dosis', 'MedicamentosPaciente.observaciones',
                'Medicamento.nombre', 'Medicamento.porporcion', 'Medicamento.presentacionesmedicamento_id', 'Medicamento.medidasmedicamento_id',
                ),
            'recursive' => 0));
        
        $this->set(compact('idtabindex', 'consultanro', 'ficha', 'edad', 'conceptos', 'tipoalerta', 'color', 'listademedidas', 'examenesexternos', 'laboratoriossolicitados', 'examenespaciente', 'cie10Paciente', 'receta'));
    }

    public function imprimirprueba($consultanro = null) {
        $ficha = $this->Consultasexterna->find('first', array(
            'conditions' => array('Consultasexterna.id' => $consultanro)
        ));
        //debug($ficha);exit;
        $listademedidas = $this->Medida->find('all', array('fields' => array('Medida.id', 'Medida.codigo'), 'recursive' => -1));
        $listaexamenescomplementarios = $this->Excomplementario->find('all', array('recursive' => -1));
        $cie10Paciente = $this->CiedesPaciente->find('all', array(
            'recursive' => 0,
            'conditions' => array(
                'CiedesPaciente.paciente_id' => $ficha['Paciente']['id'],
                'CiedesPaciente.consultasexterna_id' => $consultanro,
                'CiedesPaciente.estado' => -1
            )
        ));
        $laboratoriossolicitados = $this->Examenespaciente->find('all', array(
            'conditions' => array(
                'Examenespaciente.consultasexterna_id' => $consultanro),
            'fields' => array('Subclaseslaboratorio.nombre', 'User.apellido_materno', 'User.apellido_paterno', 'User.nombre', 'Examenespaciente.created')
        ));
        //debug($laboratoriossolicitados);exit; 
        $examenesotros = $this->ExcomplementariosPaciente->find('first', array(
                            'conditions'=>array('ExcomplementariosPaciente.consultasexterna_id'=>$consultanro)));
        
        $receta = $this->MedicamentosPaciente->find('all', array(
            'conditions' => array(
                'MedicamentosPaciente.consultasexterna_id' => $consultanro),
            'fields' => array(
                'User.nombre', 'User.apellido_paterno', 'MedicamentosPaciente.created', 'MedicamentosPaciente.medicamento',
                'Medicamento.nombre', 'Medicamento.porporcion', 'Medicamento.presentacionesmedicamento_id', 'Medicamento.medidasmedicamento_id',
                'MedicamentosPaciente.cantidad', 'MedicamentosPaciente.seguro', 'MedicamentosPaciente.dosis', 'MedicamentosPaciente.observaciones'),
            'recursive' => 0));

        $this->set(compact('ficha', 'listademedidas', 'listaexamenescomplementarios', 'examenesotros', 'laboratoriossolicitados','cie10Paciente','receta'));

    }

    public function cerrar($idconsulta = null) {
        $data = array('id' => $idconsulta, 'estadoatencion' => 'F');
        if ($this->Consultasexterna->save($data)) {
            $this->Session->setFlash('la ficha de consulta externa ha sido guardada y cerrada', 'bueno');
            $this->redirect(array('controller' => 'Consultasexternas', 'action' => 'listadopacientes'));
        }
    }

    public function ajaxantecedentesanteriores($idpaciente = null, $idconsulta = null) {

        //$this->layout=>
        $this->layout = 'ajax';
        if (!empty($this->request->data)) {
            //debug($this->request->data);
            $frase = $this->request->data['dato'];
            $idPaciente = $this->request->data['paciente_id'];
            $idConsulta = $this->request->data['consultasexterna_id'];
            $observaciones = $this->request->data['observaciones'];
            //debug($frase);
            $cadena = substr($frase, 0, -1);
            //debug($cadena);exit;    
            $cidies = $this->Ciede->find('first', array(
                'recursive' => -1,
                'conditions' => array('Ciede.descod4 like' => '%' . $cadena . '%')
            ));
            //debug($cidies);exit();
            $idCiede = $cidies['Ciede']['id'];
            $this->request->data = '';
            $this->request->data['CiedesPaciente']['user_id'] = $this->Session->read("Auth.User.id");
            $this->request->data['CiedesPaciente']['paciente_id'] = $idPaciente;
            $this->request->data['CiedesPaciente']['consultasexterna_id'] = $idConsulta;
            $this->request->data['CiedesPaciente']['ciede_id'] = $idCiede;
            $this->request->data['CiedesPaciente']['observaciones'] = $observaciones;
            //$this->request->data['Ciedespaciente']['paciente_id']=$idPaciente;
            //$cidies['Ciede']['id'];
            //debug($this->request->data);exit;
            $this->CiedesPaciente->create();
            $this->CiedesPaciente->save($this->request->data);
            
            //start log
            $datosFicha = $this->Consultasexterna->find('first', array(
                'recursive' => 0,
                'conditions' => array('Consultasexterna.id' => $idConsulta)
            ));
            $ciedespacientes = $this->CiedesPaciente->find('all', array(
                'recursive' => -1,
                'conditions' => array('CiedesPaciente.consultasexterna_id' => $idConsulta)
            ));
            //debug($datosExamenes);exit();
            $nombreMedico = $this->Session->read('Auth.User.nombre') . ' ' . $this->Session->read('Auth.User.apellido_paterno') . ' ' . $this->Session->read('Auth.User.apellido_materno');
            //debug($nombreMedico);exit();
            foreach ($ciedespacientes as $de) {
                $codigocie=$de['CiedesPaciente']['codigocie'];
                $descripcioncie= $de['CiedesPaciente']['descripcioncie'];                
                $numeroFicha = $datosFicha['Consultasexterna']['number'];
                $nombrePaciente = $datosFicha['Paciente']['nombres'] . ' ' . $datosFicha['Paciente']['ap_paterno'] . ' ' . $datosFicha['Paciente']['ap_materno'];

                CakeLog::warning("Cambio Ficha: $numeroFicha \t\t Paciente: $nombrePaciente \t\t Doctor: $nombreMedico \t\t Codigocie: $codigocie \t\t Descripcioncie: $descripcioncie", 'cambio');
            }
            //end log
            $this->redirect(array('controller' => 'Pacientes', 'action' => 'verestadopaciente', $idConsulta, 'cie'));
        } else {
            $historial = $this->CiedesPaciente->find('all', array(
                'recursive' => -1,
                'conditions' => array(
                    'CiedesPaciente.paciente_id' => $ficha['Paciente']['id'],
                    'CiedesPaciente.estado' => TRUE
                ),
                'order' => array('CiedesPaciente.id DESC')
            ));

            $historialAnterior = $this->Antecedentesanteriore->find('all', array(
                'recursive' => -1,
                'conditions' => array(
                    'Antecedentesanteriore.paciente_id' => $ficha['Paciente']['id'],
                ),
                'order' => array('Antecedentesanteriore.id DESC')
            ));

            $this->set(compact('idpaciente', 'idconsulta', 'historial', 'historialAnterior'));
        }
    }

    public function ajaxantecedentesginecologicos($idPaciente = null, $idConsulta = null) {

        $this->layout = 'ajax';
        $datosPaciente = $this->Paciente->find('first', array(
            'recursive' => -1,
            'conditions' => array('Paciente.id' => $idPaciente)
        ));
        $datosGinecologicos = $this->Antecedentesginecologico->find('first', array(
            'recursive' => -1,
            'conditions' => array('Antecedentesginecologico.paciente_id' => $idPaciente),
            'order' => 'Antecedentesginecologico.id DESC'
        ));
        //debug($datosGinecologicos);exit();
        //LOG
        $datosFicha = $this->Consultasexterna->find('first', array(
            'recursive' => 0,
            'conditions' => array('Consultasexterna.id' => $idConsulta)
        ));
        $nombreMedico = $this->Session->read('Auth.User.nombre') . ' ' . $this->Session->read('Auth.User.apellido_paterno') . ' ' . $this->Session->read('Auth.User.apellido_materno');
        foreach ($datosGinecologicos as $de) {
            $antecedentes = $de['Antecedentesginecologico']['nota'];                
            $numeroFicha = $datosFicha['Consultasexterna']['number'];
            $nombrePaciente = $datosFicha['Paciente']['nombres'] . ' ' . $datosFicha['Paciente']['ap_paterno'] . ' ' . $datosFicha['Paciente']['ap_materno'];
            CakeLog::warning("Cambio Ficha: $numeroFicha \t\t Paciente: $nombrePaciente \t\t Doctor: $nombreMedico \t\t AntecedentesGenecologicosNota: $antecedentes", 'cambio');
        } 
            //endlog
        if (!empty($this->request->data)) {
            //debug($this->request->data);die;
            $this->Antecedentesginecologico->create();
            if ($this->Antecedentesginecologico->save($this->request->data)) {
                $this->redirect(array('action' => 'verestadopaciente', $idConsulta, 'txt_motivo'));
            }
        } else {
            
        }
        $this->set(compact('idPaciente', 'idConsulta', 'datosPaciente', 'datosGinecologicos'));
    }

    public function ajaxmuestrantecedentes($idPaciente = null) {

        $this->layout = 'ajax';
        $historial = $this->CiedesPaciente->find('all', array(
            'recursive' => 0,
            'conditions' => array(
                'CiedesPaciente.paciente_id' => $idPaciente,
                'CiedesPaciente.estado' => TRUE
            ),
            'order' => array('Consultasexterna.id DESC')
        ));

        $historialAnterior = $this->Antecedentesanteriore->find('all', array(
            'recursive' => -1,
            'conditions' => array(
                'Antecedentesanteriore.paciente_id' => $idPaciente,
            ),
            'order' => array('Antecedentesanteriore.id DESC')
        ));
        $this->set(compact('historial', 'historialAnterior'));
    }

    public function ajaxmuestralergias($idPaciente = null) {

        $this->layout = 'ajax';
        $historialalergias = $this->Antecedentesalergico->find('all', array(
            'conditions' => array(
                'Antecedentesalergico.paciente_id' => $idPaciente
            )
        ));
        $this->set(compact('historialalergias'));
    }

    public function ajaxmuestraginecologicos($idPaciente = null) {
        $this->layout = 'ajax';
        $antecedentesGinecologicosPaciente = $this->Antecedentesginecologico->find('all', array(
            'recursive' => -1,
            'conditions' => array('Antecedentesginecologico.paciente_id' => $idPaciente)
        ));

        $this->set(compact('antecedentesGinecologicosPaciente'));
    }

    public function ajaxcambiaprocedimientos() {

        $this->layout = 'ajax';
        //debug($this->request->data);
        $idConsulta = $this->request->data['cambiaProcedimientos']['consulta'];
        $idPaciente = $this->request->data['cambiaProcedimientos']['paciente'];
        $usuario = $this->Session->read('Auth.User.id');
        $examenes = array();
        $examenes = $this->request->data['examenes'];
        $this->ExcomplementariosPaciente->deleteAll(array('ExcomplementariosPaciente.consultasexterna_id' => $idConsulta), false);
        if (!empty($examenes)) {
            foreach ($examenes as $e) {
                //debug($e);
                if (!empty($e['excomplementario_id'])) {
                    $this->request->data['ExcomplementariosPaciente']['paciente_id'] = $idPaciente;
                    $this->request->data['ExcomplementariosPaciente']['excomplementario_id'] = $e['excomplementario_id'];
                    $this->request->data['ExcomplementariosPaciente']['observaciones'] = $e['observaciones'];
                    $this->request->data['ExcomplementariosPaciente']['consultasexterna_id'] = $idConsulta;
                    $this->request->data['ExcomplementariosPaciente']['user_id'] = $usuario;
                    //debug($this->request->data['ExcomplementariosPaciente']);
                    $this->ExcomplementariosPaciente->create();
                    $this->ExcomplementariosPaciente->save($this->request->data);
                }
            }

            //datos para el log            

            $datosFicha = $this->Consultasexterna->find('first', array(
                'recursive' => 0,
                'conditions' => array('Consultasexterna.id' => $idConsulta)
            ));

            $datosExamenes = $this->ExcomplementariosPaciente->find('all', array(
                'recursive' => -1,
                'conditions' => array('ExcomplementariosPaciente.consultasexterna_id' => $idConsulta)
            ));
            $nombreMedico = $this->Session->read('Auth.User.nombre') . ' ' . $this->Session->read('Auth.User.apellido_paterno') . ' ' . $this->Session->read('Auth.User.apellido_materno');

            foreach ($datosExamenes as $de) {

                $observaciones = $de['ExcomplementariosPaciente']['observaciones'];
                $datosExamen = $this->Excomplementario->find('first', array(
                    'recursive' => -1,
                    'conditions' => array('Excomplementario.id' => $de['ExcomplementariosPaciente']['excomplementario_id'])
                ));
                $nombreExamen = $datosExamen['Excomplementario']['nombre'];
                $numeroFicha = $datosFicha['Consultasexterna']['number'];
                $nombrePaciente = $datosFicha['Paciente']['nombres'] . ' ' . $datosFicha['Paciente']['ap_paterno'] . ' ' . $datosFicha['Paciente']['ap_materno'];
                
                CakeLog::warning("Cambio Ficha: $numeroFicha \t\t Paciente: $nombrePaciente \t\t Doctor: $nombreMedico \t\t Examen: $nombreExamen \t\t Observaciones: $observaciones", 'cambio');
            }
        }
        //debug($examenes);
        //$idConsulta = $this->request->data['cambiaProcedimientos']['consulta'];       
    }

    public function ajaxalertalaboratorios() {

        $this->layout = 'ajax';
        $estadoConsulta = $this->Consultasexterna->find('first', array(
            'recursive' => -1,
            'conditions' => array('Consultasexterna.estadoatencion' => 'L'),
            'order' => "Consultasexterna.id DESC"
        ));
        //debug($estadoConsulta);
        $this->set(compact('estadoConsulta'));
    }
    
    public function verantecedentesanteriores($idPaciente = null){ 
              
        $datosPaciente = $this->Paciente->find('first', array(
            'recursive'=>-1,
            'conditions'=>array('Paciente.id'=>$idPaciente)
        ));
        $historial = $this->Consultasexterna->find('all', array(
            'recursive'=>0,
            'conditions'=>array(
                'Consultasexterna.paciente_id'=>$idPaciente
                 )
            ));
      
        $this->set(compact('historial', 'datosPaciente'));
    }
     public function quitarlabo($idconsulta = null, $id = null) {
        if ($this->Examenespaciente->delete($id)) {
            $this->Session->setFlash('Se descarto laboratorio', 'bueno');
            $this->redirect(array('controller'=>'Pacientes', 'action' => 'verestadopaciente', $idconsulta, 'solicitalaboratorio'));
        }   
    }
    public function eliminaalergia($id=null, $idconsulta=null){
        if($this->Antecedentesalergico->delete($id)){
            $this->Session->setFlash('Antecedente eliminado ', 'bueno');
            $this->redirect(array('action'=>'verestadopaciente', $idconsulta, 'txt_motivo'));
        }
    }
    public function sololaboratorios($idConsulta=null){
         $ficha = $this->Consultasexterna->find('first', array(
            'conditions' => array('Consultasexterna.id' => $idConsulta)
        ));
        $numeroFicha = $ficha['Consultasexterna']['number'];
        $nombrePaciente = $ficha['Paciente']['nombres'] . ' ' . $ficha['Paciente']['ap_paterno'] . ' ' . $ficha['Paciente']['ap_materno'];
       
        if ($ficha['Consultasexterna']['estadoatencion'] == 'F') {
            $this->Session->setFlash('La ficha fue finalizada', 'error');
            $this->redirect(array('controller' => 'Pacientes', 'action' => 'verestadopacienteimprime', $consultanro));
        }

        if ($ficha['Consultasexterna']['medico_id'] == null && $ficha['Consultasexterna']['estadoatencion'] == 'N') {

            $tipoUsuario = $this->Session->read('Auth.User.group_id');
            if ($tipoUsuario == 2) {
                $nombreMedico = $this->Session->read('Auth.User.nombre') . ' ' . $this->Session->read('Auth.User.apellido_paterno') . ' ' . $this->Session->read('Auth.User.apellido_materno');
                $data = array('id' => $idConsulta, 'medico_id' => $this->Session->read('Auth.User.id'), 'estadoatencion' => 'A');
                CakeLog::warning("Atendio Ficha: $numeroFicha \t\t Paciente: $nombrePaciente \t\t Doctor: $nombreMedico", 'cambio');
                $this->Consultasexterna->save($data);
            }
            $idtabindex = "signos";
        }
        if ($idtabindex == null) {

            $idtabindex = "signos";
        }

       $edad = $ficha['Consultasexterna']['edad'];

        $examenesexternos = $this->Excomplementario->find('all', 
                array(
                    'recursive' => -1)
                );
        $laboratoriossolicitados = $this->Examenespaciente->find('all', array(
            'conditions' => array(
                'Examenespaciente.consultasexterna_id' => $idConsulta),
            'fields' => array(
                'Subclaseslaboratorio.nombre', 'User.apellido_materno', 'User.apellido_paterno', 'User.nombre', 
                'Examenespaciente.id',
                'Examenespaciente.consultasexterna_id'
                ,'Examenespaciente.created')
        ));
        //debug($laboratoriossolicitados);exit;
        $this->set(compact('idtabindex', 'consultanro', 'ficha', 'edad', 'examenesexternos', 'laboratoriossolicitados'));
    }

}